package cn.itcast.dao;

import cn.itcast.pojo.Address;
import cn.itcast.pojo.Order;
import cn.itcast.pojo.OrderSetting;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;


public interface OrderListDao {

    /**
     * 条件查询检查组信息
     *
     * @param
     * @return
     */
    Page<Order> findAll();

    /**
     * 根据Id查询
     *
     * @param minTime
     * @param maxTime
     * @param orderType
     * @param payStatus
     * @param queryString
     * @return
     */
    Page<Order> findByCondition(@Param("minTime") String minTime,
                                @Param("maxTime") String maxTime,
                                @Param("orderType") String orderType,
                                @Param("payStatus") Integer payStatus,
                                @Param("queryString") String queryString);

    /**
     * 根据套餐Id查询套餐
     *
     * @param steamlId
     * @return
     */
    String findBySetmealId(Integer steamlId);

    /**
     * 根据Id查询预约信息
     *
     * @param id
     * @return
     */
    Order findById(String id);

    /**
     * 新增预约信息
     *
     * @param order
     * @return
     */
    Boolean saveOrder(Order order);

    /**
     * 修改预约信息
     *
     * @param order
     * @return
     */
    Boolean updateOrder(Order order);

    /**
     * 修改预约数量
     *
     * @param orderDate
     * @param afterReservations
     * @return
     */
    Boolean updateReservations(@Param("orderDate") String orderDate, @Param("afterReservations") Integer afterReservations);

    /**
     * 判断是否可预约
     *
     * @param orderDate
     * @return
     */
    OrderSetting isNotReservations(String orderDate);

    /**
     * 判断是否重复预约
     *
     * @param orderDate
     * @param setmealId
     * @param idCard
     * @return
     */
    Order isExist(@Param("orderDate") String orderDate, @Param("setmealId") Integer setmealId, @Param("idCard") String idCard);
}
